↳ Prolog
↳ PrologToPiTRSProof
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
dis_in_g(B) → U3_g(B, con_in_g(B))
U3_g(B, con_out_g(B)) → dis_out_g(B)
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
dis_in_g(B) → U3_g(B, con_in_g(B))
U3_g(B, con_out_g(B)) → dis_out_g(B)
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
CON_IN_G(and(B1, B2)) → U4_G(B1, B2, dis_in_g(B1))
CON_IN_G(and(B1, B2)) → DIS_IN_G(B1)
DIS_IN_G(or(B1, B2)) → U1_G(B1, B2, con_in_g(B1))
DIS_IN_G(or(B1, B2)) → CON_IN_G(B1)
CON_IN_G(B) → U6_G(B, bool_in_g(B))
CON_IN_G(B) → BOOL_IN_G(B)
U1_G(B1, B2, con_out_g(B1)) → U2_G(B1, B2, dis_in_g(B2))
U1_G(B1, B2, con_out_g(B1)) → DIS_IN_G(B2)
DIS_IN_G(B) → U3_G(B, con_in_g(B))
DIS_IN_G(B) → CON_IN_G(B)
U4_G(B1, B2, dis_out_g(B1)) → U5_G(B1, B2, con_in_g(B2))
U4_G(B1, B2, dis_out_g(B1)) → CON_IN_G(B2)
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
dis_in_g(B) → U3_g(B, con_in_g(B))
U3_g(B, con_out_g(B)) → dis_out_g(B)
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
CON_IN_G(and(B1, B2)) → U4_G(B1, B2, dis_in_g(B1))
CON_IN_G(and(B1, B2)) → DIS_IN_G(B1)
DIS_IN_G(or(B1, B2)) → U1_G(B1, B2, con_in_g(B1))
DIS_IN_G(or(B1, B2)) → CON_IN_G(B1)
CON_IN_G(B) → U6_G(B, bool_in_g(B))
CON_IN_G(B) → BOOL_IN_G(B)
U1_G(B1, B2, con_out_g(B1)) → U2_G(B1, B2, dis_in_g(B2))
U1_G(B1, B2, con_out_g(B1)) → DIS_IN_G(B2)
DIS_IN_G(B) → U3_G(B, con_in_g(B))
DIS_IN_G(B) → CON_IN_G(B)
U4_G(B1, B2, dis_out_g(B1)) → U5_G(B1, B2, con_in_g(B2))
U4_G(B1, B2, dis_out_g(B1)) → CON_IN_G(B2)
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
dis_in_g(B) → U3_g(B, con_in_g(B))
U3_g(B, con_out_g(B)) → dis_out_g(B)
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
DIS_IN_G(B) → CON_IN_G(B)
U1_G(B1, B2, con_out_g(B1)) → DIS_IN_G(B2)
DIS_IN_G(or(B1, B2)) → U1_G(B1, B2, con_in_g(B1))
DIS_IN_G(or(B1, B2)) → CON_IN_G(B1)
CON_IN_G(and(B1, B2)) → DIS_IN_G(B1)
U4_G(B1, B2, dis_out_g(B1)) → CON_IN_G(B2)
CON_IN_G(and(B1, B2)) → U4_G(B1, B2, dis_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
dis_in_g(B) → U3_g(B, con_in_g(B))
U3_g(B, con_out_g(B)) → dis_out_g(B)
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
DIS_IN_G(B) → CON_IN_G(B)
DIS_IN_G(or(B1, B2)) → U1_G(B2, con_in_g(B1))
CON_IN_G(and(B1, B2)) → U4_G(B2, dis_in_g(B1))
DIS_IN_G(or(B1, B2)) → CON_IN_G(B1)
U1_G(B2, con_out_g) → DIS_IN_G(B2)
U4_G(B2, dis_out_g) → CON_IN_G(B2)
CON_IN_G(and(B1, B2)) → DIS_IN_G(B1)
con_in_g(and(B1, B2)) → U4_g(B2, dis_in_g(B1))
dis_in_g(or(B1, B2)) → U1_g(B2, con_in_g(B1))
con_in_g(B) → U6_g(bool_in_g(B))
bool_in_g(0) → bool_out_g
bool_in_g(1) → bool_out_g
U6_g(bool_out_g) → con_out_g
U1_g(B2, con_out_g) → U2_g(dis_in_g(B2))
dis_in_g(B) → U3_g(con_in_g(B))
U3_g(con_out_g) → dis_out_g
U2_g(dis_out_g) → dis_out_g
U4_g(B2, dis_out_g) → U5_g(con_in_g(B2))
U5_g(con_out_g) → con_out_g
con_in_g(x0)
dis_in_g(x0)
bool_in_g(x0)
U6_g(x0)
U1_g(x0, x1)
U3_g(x0)
U2_g(x0)
U4_g(x0, x1)
U5_g(x0)
From the DPs we obtained the following set of size-change graphs: